<?php


include dirname(__FILE__).DIRECTORY_SEPARATOR.'tenpay'.DIRECTORY_SEPARATOR.'RequestHandler.class.php';
class tenpay
{
    //配置
    private $config;
    public function config($config = null)
    {
        $this->config = $config;
        $partner = $config['id'];                                      //财付通商户号
        $key = $config['key'];                                        //财付通密钥
        $return_url = $config['ReturnUrl'];                //显示支付结果页面,*替换成payReturnUrl.php所在路径
        $notify_url = $config['NotifyUrl'];                //支付完成后的回调处理页面,*替换成payNotifyUrl.php所在路径
        /* 获取提交的订单号 */
        $out_trade_no = $config['code'];
        /* 获取提交的商品名称 */
        $product_name = $config['title'];
        /* 获取提交的商品价格 */
        $order_price = $config['money'];
        /* 获取提交的备注信息 */
        $remarkexplain = '';
        /* 支付方式 */
        $trade_mode = $config['type'];
        /* 商品价格（包含运费），以分为单位 */
        $total_fee = $order_price * 100;
        /* 商品名称 */
        //$desc = "商品：".$product_name.",备注:".$remarkexplain;
        $desc = $product_name;
        /* 创建支付请求对象 */
        $reqHandler = new RequestHandler();

        $reqHandler->init();
        $reqHandler->setKey($key);
        $reqHandler->setGateUrl('https://gw.tenpay.com/gateway/pay.htm');
        //----------------------------------------
        //设置支付参数
        //----------------------------------------
        $reqHandler->setParameter('partner', $partner);
        $reqHandler->setParameter('out_trade_no', $out_trade_no);
        $reqHandler->setParameter('total_fee', $total_fee);        //总金额
        $reqHandler->setParameter('return_url', $return_url);
        $reqHandler->setParameter('notify_url', $notify_url);
        $reqHandler->setParameter('body', $desc);
        $reqHandler->setParameter('bank_type', $config['pay_bank']);            //银行类型，默认为财付通DEFAULT
        //用户ip
        $reqHandler->setParameter('spbill_create_ip', $_SERVER['REMOTE_ADDR']);//客户端IP
        $reqHandler->setParameter('fee_type', '1');               //币种
        $reqHandler->setParameter('subject', $desc);          //商品名称，（中介交易时必填)

        //系统可选参数
        $reqHandler->setParameter('sign_type', 'MD5');          //签名方式，默认为MD5，可选RSA
        $reqHandler->setParameter('service_version', '1.0');      //接口版本号
        $reqHandler->setParameter('input_charset', 'utf-8');      //字符集
        $reqHandler->setParameter('sign_key_index', '1');          //密钥序号
        //业务可选参数
        $reqHandler->setParameter('attach', '');                   //附件数据，原样返回就可以了
        $reqHandler->setParameter('product_fee', '');              //商品费用
        $reqHandler->setParameter('transport_fee', '0');            //物流费用
        $reqHandler->setParameter('time_start', date('YmdHis'));  //订单生成时间
        $reqHandler->setParameter('time_expire', '');             //订单失效时间
        $reqHandler->setParameter('buyer_id', '');                //买方财付通帐号
        $reqHandler->setParameter('goods_tag', '');               //商品标记
        $reqHandler->setParameter('trade_mode', $trade_mode);      //交易模式（1.即时到帐模式，2.中介担保模式，3.后台选择（卖家进入支付中心列表选择））
        $reqHandler->setParameter('transport_desc', '');           //物流说明
        $reqHandler->setParameter('trans_type', '1');              //交易类型
        $reqHandler->setParameter('agentid', '');                  //平台ID
        $reqHandler->setParameter('agent_type', '');               //代理模式（0.无代理，1.表示卡易售模式，2.表示网店模式）
        $reqHandler->setParameter('seller_id', '');                //卖家的商户号
        //请求的URL
        $this->url = $reqUrl = $reqHandler->getRequestURL();
        //获取debug信息,建议把请求和debug信息写入日志，方便定位问题
        $this->debugInfo = $debugInfo = $reqHandler->getDebugInfo();
    }

    //支付页面
    public function send_pay()
    {
        $url = $this->url;
        header("Location: $url");
        exit;
    }
}
